# coding-utf-8
# 调用thinter python标准窗口
# 调用random随机数库
# 嗲用线程函数进行启动机制
# 调用时间函数进行时间上的预测控制
import tkinter
import random
import threading
import time

# thinter 进行初始化窗口
root = tkinter.Tk()
root.title("谁才是星辰的本名")
# 设置窗口大小，前两个相乘是窗体的长宽,后两个可以相加相减的是窗口出现的占整个输出界面的位置
root.geometry('500x500+400+200')
# 设置窗体大小是否可变，拉长拉直？两个传入参数涉及到x、y方向的拉伸
root.resizable(False,False)
# 设置窗体启动的开关门flag
root.flag = True

# 三个Lable标签
first = tkinter.Label(root, text='', font=("宋体",20,"normal"))
first['fg'] = 'red'
first.place(x=180, y=100, width=150, height=100)

second = tkinter.Label(root, text='', font=("宋体",20,"normal"))
second['fg'] = 'yellow'
second.place(x=180, y=200, width=150, height=100)

third = tkinter.Label(root, text='', font=("宋体",20,"normal"))
third['fg'] = 'blue'
third.place(x=180, y= 300, width= 150, height=100)

students = ['诸葛亮','李白','韩信','牛魔','花木兰','吕布','刘邦','达摩']

def switch():
    root.flag = True
    while root.flag:
            # 设置随机数在长列表长度的范围内
            i = random.randint(0, len(students)-1)
            # 利用时间函数快速赋值实现快速变换
            first['text'] = second['text']
            second['text'] = third['text']
            third['text'] = students[i]
            time.sleep(0.1)

# 开始按钮
def butStartClick():
    # 线程目标启动函数，记得配套的start()函数
    t = threading.Thread(target=switch)
    t.start()

# 设置结束按钮的位置以及命令的对象函数
def btnStopClick():
    root.flag = False

# 设置开始按钮的位置以及命令的对象函数
btnStart = tkinter.Button(root, text='开始', command=butStartClick)
btnStart.place(x=30, y=30, width=80, height=20)

# 设置结束按钮的位置以及命令的对象函数
butStop = tkinter.Button(root, text='停止', command=btnStopClick)
butStop.place(x=160, y=30, width=80, height=20)

# 启动主程序，用线程的启动方式即可
root.mainloop()